import {
  createStore,
  applyMiddleware,
} from 'redux'

import createSagaMiddleware from '../redux-saga'

import rootSaga from './sagas'

// 创建一个 saga 中间件
const sagaMiddleware = createSagaMiddleware()

// 获取 reducer 处理器
import reducer from './reducer'

// 创建 store 仓库时使用 sagaMiddleware 中间件
const store = applyMiddleware(sagaMiddleware)(createStore)(reducer)

// 使用 rootSaga 生成器函数
// 需要在创建仓库后再调用 sagaMiddleware.run 方法应用 rootSaga 生成器函数
// 因为 rootSaga 生成器函数内部使用到 store 仓库了
// debugger
sagaMiddleware.run(rootSaga)


export default store
